package com.ruoyi.project.lab.mapper;

import com.ruoyi.project.lab.domain.Lab;
import com.ruoyi.project.lab.domain.LabAddParam;
import com.ruoyi.project.lab.domain.LabDateParam;

import java.util.List;
import java.util.Map;

public interface LabMapper {
    List<Lab> selectAll(Lab lab);

    int insertLab(Lab lab);

    int deleteById(String ids);

    int deleteTestByIds(Long[] testIds);

    Lab selectLabById(Long id);

    int updateLab(Lab lab);

    void insertLabs(LabAddParam labAddParam);


    //删除实验室前删除该实验室的试验信息
    int deleteExperiment(Long[] testIds);
    //接着删除实验室相关的预约信息
    int deleteLabDate(Long[] testIds);
    //删除用户实验室预约表信息
    int  deleteSubscribe(Long[] testIds);
    //删除实验的同时，删除学生提交的试验信息表的内容
    int deleteStudentExperiment(Long[] testIds);



    //实验室开放
    int editGuanbi(Long id);
    //实验室关闭
    int editKaifang(Long id);


    //获取实验室开放的时间节次信息
    List<LabDateParam> getAllLabDate(LabDateParam labDateParam);
    //修改实验室指定时间的节次开放
    boolean updateLabDate(Map<String,Object> map);
    //同时修改实验室未选中的节次关闭
    boolean updateLabDate2(Map<String,Object> map);

    /**
     * 删除实验室某天的开放信息
     * @param labDateParam
     * @return
     */
    boolean deleteLabDateByTime(LabDateParam labDateParam);

    /**
     * 查询当天的实验室是否有教师预约
     * @param labDateParam
     * @return
     */
    List<Integer> selectLabDate(LabDateParam labDateParam);

}
